An embedded digital system generally performs asynchronous serial communication with other devices. In the field of telecommunications and computer science, serial communication generally refers to a process of continuously transmitting data one bit at a time through a communication channel or a computer bus. When data is continuously transmitted in such serial communication, a device at the receiving end needs a method of distinguishing each bit.
To recover data bits, a synchronization signal is simultaneously transmitted using a transmission line to inform the temporal location of the data. This is called synchronous communication.
The synchronous method requires a separate line for the synchronization signal. Thus, circuit configuration is more complicated than in an asynchronous transmission method in which only a data signal is transmitted, and the price of a released product is increased.
In a general asynchronous serial communication method, only a single power line for digital signal transmission exists between the transmitting end and the receiving end, and a clock signal for synchronization is not transmitted. In this case, since the receiving end performs data recovery using its own clock signal, only a slight difference between the clock of the transmitting end and the clock of the receiving end results in an error of the entire digital system.
Such fluctuation of the waveform of a digital pulse signal on a time axis is called jitter. For example, in a universal asynchronous serial receiver and transmitter (UART) method which is one of the most common asynchronous serial communication methods, it is known that a clock signal error should be within several % in consideration of the jitter problem at the transmitting end.
To maintain a clock error between the transmitting end and the receiving end within a specific range in asynchronous serial communication, the transmitting end and the receiving end should use the same crystal oscillator. However, adding such a separate element to an embedded digital system increases the cost of the communication system, thereby imposing a design burden.
Some methods for solving the above problem include Manchester code and bipolar code. The Manchester code is a method of encoding a digital signal by measuring a rising edge and a falling edge in a cycle, and the bipolar code is a method of repeatedly encoding low and high when 1 is repeatedly encoded.
In the case of the Manchester code, a loss of bandwidth is unavoidable because low and high should be repeatedly output for every bit. In the case of the bipolar code, the above-mentioned jigger problem occurs when 0 is successively encoded.
Therefore, in the asynchronous serial communication method, there is a need for a novel method by which the transmitting end efficiently encodes a clock signal together with data by considering a bit rate of the clock signal and the receiving end performs clock synchronization by effectively decoding and restoring the clock.